package com.ts.api.module.api.service;

import com.ts.api.exp.RollBackException;
import com.ts.api.module.api.convert.receive.entity.ApiReceiveApply;
import com.ts.api.module.api.entity.ApiUserRequest;
import com.ts.api.module.api.entity.bo.ApiParameterBO;
import com.ts.api.module.product.entity.po.ProductApplyFlowPO;

/**
 *  API-进件接口业务层
 */
public interface ApiBizApplyService {

    /**
     *  全流程模式-进件
     *
     *  @param  apiUserRequest          API用户数据
     *  @param  apiParameterBO       API参数对象
     *  @param  productApplyFlowPO   流程记录对象
     *  @return ApiReceiveApplyMessage
     */
    ApiReceiveApply apply(ApiUserRequest apiUserRequest, ApiParameterBO apiParameterBO, ProductApplyFlowPO productApplyFlowPO) throws RollBackException;

    /**
     *  全流程模式-进件
     *
     *  @param  apiUserRequest          API用户数据
     *  @param  apiParameterBO          API参数对象
     *  @param  productApplyFlowPO      流程记录对象
     *  @return ApiReceiveApplyMessage
     */
    ApiReceiveApply applyPhoneMask(ApiUserRequest apiUserRequest, ApiParameterBO apiParameterBO, ProductApplyFlowPO productApplyFlowPO) throws RollBackException;
}
